package com.yuxi.Service;

import java.util.List;

import org.apache.catalina.User;
import org.springframework.stereotype.Service;

import com.yuxi.Entity.FirstCheckExcel;
import com.yuxi.Entity.Information;
import com.yuxi.Entity.PrisonStructure;
import com.yuxi.Entity.UserInfo;
import com.yuxi.Request.InformationQuery;
import com.yuxi.Request.Page;

/**
 * 用户信息操作Service
 * @version 0.1 2016-07-19 18:22:22
 * @author wyd
 * */
@Service
public interface UserInformationService {
	/**
	 * 添加     (创建用户添加信息记录+添加信息)
	 * @param information 添加的information
	 * @return boolean
	 * @author wyd
	 * */
	public boolean userAddInformation(Information information,UserInfo user,String ip);
	/**
	 * 用户修改信息 (id查出要修改的information——> 创建用户修改记录（）——>存入修改信息记录表——>更新信息)
	 * @param information 要修改的information 对象
	 * @param userInfo 修改的用户
	 * @author wyd
	 * */
	public boolean userUpdataInformation(Information information,UserInfo userInfo,String ip);
	
	/**
	 * 删除信息 (id查出要修改的information——>创建用户删除记录（）——>存入信息删除记录表——>删除信息)
	 * @param informationId 要修改的inforamtoin
	 * @param u 修改用户
	 * @author wyd
	 * */
	public boolean userDelInformationById(Information information,UserInfo u,String ip);
	/**
	 * 获取已提交信息列表
	 * @author wyd
	 * */
	public Page<Information> userGetInformationList(InformationQuery inforQuery,UserInfo user,String ip,Page<Information> p);

	/**
	 * 获取信息通过ID
	 * 
	 * */
	public Information userGetInformationById(int informationId);
	/**
	 * 用户合并信息
	 * */
	public Information userInfoTogether(String[] infoIdList,int templetId,UserInfo u,String ip);
	
	/**
	 *录入任务完成情况
	 * */
	public boolean inputTaskFinsh(int informationId,int taskId,String text,UserInfo u,String ip);
	/**
	 * 点评(监区分管领导)
	 * */
	public boolean commentInfo(int informationId,String text,String qualityLvId,String taskLvId,String qualityLvName,String taskLvName,String completeText ,UserInfo u,String ip);
	/**
	 * 评价(监狱领导)
	 * */
	public boolean ratedInfo(int informationId,String text,UserInfo u,String ip,String peopleId,String peopleName);	
	
	/**
	 * 导出初审信息
	 * */
	public List<FirstCheckExcel> getInfotmationByIdArray(int[] idArray);	
	
	
	
	/**
	 * 监区流程转为监狱流程	
	 * @param infoId
	 * @param u
	 * @return
	 */
	public boolean prisonAreaToPrison(Integer infoId,UserInfo u);
	
	/**
	 * 监狱流程转为监区流程	
	 * @param infoId
	 * @param u
	 * @return
	 */
	public boolean prisonToPrisonArea(Integer infoId,UserInfo u);	
	
	/**
	 * 信息从监区到监狱
	 * @param infoId
	 * @param struct
	 * @param u
	 * @return
	 */
	public boolean inforChangeTOPrison(Integer infoId,PrisonStructure targetStruct,UserInfo u,String ip,String remark);
	
	/**
	 * 信息从监狱到监区
	 * @param infoId
	 * @param struct
	 * @param u
	 * @return
	 */
	public boolean inforChangeTOPrisonArea(Integer infoId,PrisonStructure targetStruct,UserInfo u,String ip,String remark);

	public void delInfoById(Integer id);
	
	void delOwnExporId(Integer id);
}
